import { ref, onMounted, onErrorCaptured,nextTick } from 'vue';  
  
export function useFetchData(objFun) {  
  const result = ref([]); // 用于存储从接口获取的用户数据  
  const error = ref(null); // 用于存储可能出现的错误  
  const isLoading = ref(false); // 用于表示数据是否正在加载 
  
  const fetchList = async () => {  
    try {  
      isLoading.value = true; // 开始加载数据时设置 isLoading 为 true  
	  const data = await objFun(); // 假设您的 API 端点是 '/api/users'   
      result.value = data; // 将接口返回的数据赋值给 result  
    } catch (err) {  
      error.value = err; // 如果出现错误，将错误信息赋值给 error  
    } finally {  
      isLoading.value = false; // 数据加载完成后设置 isLoading 为 false  
    }  
  };  
  onMounted(fetchList()); // 在组件挂载时调用 fetchList 函数  
  onErrorCaptured((err, vm, info) => {  
    error.value = err; // 如果在组件的生命周期钩子或事件处理器中出现错误，将错误信息赋值给 error  
    return false; // 返回 false 表示错误没有被处理，将冒泡到外层  
  });  
	return {  
		result,  
		error,  
		isLoading,  
		fetchList, // 返回 fetchUsers 函数，以便在组件中手动调用  
	};  
}